
client:     file format elf64-x86-64


Disassembly of section .init:

00000000004005c0 <_init>:
  4005c0:	48 83 ec 08          	sub    $0x8,%rsp
  4005c4:	48 8b 05 1d 1a 20 00 	mov    0x201a1d(%rip),%rax        # 601fe8 <__gmon_start__>
  4005cb:	48 85 c0             	test   %rax,%rax
  4005ce:	74 05                	je     4005d5 <_init+0x15>
  4005d0:	e8 53 00 00 00       	callq  400628 <__gmon_start__@plt>
  4005d5:	48 83 c4 08          	add    $0x8,%rsp
  4005d9:	c3                   	retq   

Disassembly of section .plt:

00000000004005e0 <.plt>:
  4005e0:	ff 35 ba 19 20 00    	pushq  0x2019ba(%rip)        # 601fa0 <_GLOBAL_OFFSET_TABLE_+0x8>
  4005e6:	ff 25 bc 19 20 00    	jmpq   *0x2019bc(%rip)        # 601fa8 <_GLOBAL_OFFSET_TABLE_+0x10>
  4005ec:	0f 1f 40 00          	nopl   0x0(%rax)

Disassembly of section .plt.got:

00000000004005f0 <puts@plt>:
  4005f0:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fb0 <puts@GLIBC_2.2.5>
  4005f6:	66 90                	xchg   %ax,%ax

00000000004005f8 <system@plt>:
  4005f8:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fb8 <system@GLIBC_2.2.5>
  4005fe:	66 90                	xchg   %ax,%ax

0000000000400600 <printf@plt>:
  400600:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fc0 <printf@GLIBC_2.2.5>
  400606:	66 90                	xchg   %ax,%ax

0000000000400608 <memset@plt>:
  400608:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fc8 <memset@GLIBC_2.2.5>
  40060e:	66 90                	xchg   %ax,%ax

0000000000400610 <read@plt>:
  400610:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fd0 <read@GLIBC_2.2.5>
  400616:	66 90                	xchg   %ax,%ax

0000000000400618 <__libc_start_main@plt>:
  400618:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fd8 <__libc_start_main@GLIBC_2.2.5>
  40061e:	66 90                	xchg   %ax,%ax

0000000000400620 <getchar@plt>:
  400620:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fe0 <getchar@GLIBC_2.2.5>
  400626:	66 90                	xchg   %ax,%ax

0000000000400628 <__gmon_start__@plt>:
  400628:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601fe8 <__gmon_start__>
  40062e:	66 90                	xchg   %ax,%ax

0000000000400630 <fflush@plt>:
  400630:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601ff0 <fflush@GLIBC_2.2.5>
  400636:	66 90                	xchg   %ax,%ax

0000000000400638 <exit@plt>:
  400638:	ff 25 ba 19 20 00    	jmpq   *0x2019ba(%rip)        # 601ff8 <exit@GLIBC_2.2.5>
  40063e:	66 90                	xchg   %ax,%ax

Disassembly of section .text:

0000000000400640 <_start>:
  400640:	31 ed                	xor    %ebp,%ebp
  400642:	49 89 d1             	mov    %rdx,%r9
  400645:	5e                   	pop    %rsi
  400646:	48 89 e2             	mov    %rsp,%rdx
  400649:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40064d:	50                   	push   %rax
  40064e:	54                   	push   %rsp
  40064f:	49 c7 c0 f0 0d 40 00 	mov    $0x400df0,%r8
  400656:	48 c7 c1 80 0d 40 00 	mov    $0x400d80,%rcx
  40065d:	48 c7 c7 55 0d 40 00 	mov    $0x400d55,%rdi
  400664:	e8 af ff ff ff       	callq  400618 <__libc_start_main@plt>
  400669:	f4                   	hlt    
  40066a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400670 <deregister_tm_clones>:
  400670:	b8 17 20 60 00       	mov    $0x602017,%eax
  400675:	55                   	push   %rbp
  400676:	48 2d 10 20 60 00    	sub    $0x602010,%rax
  40067c:	48 83 f8 0e          	cmp    $0xe,%rax
  400680:	48 89 e5             	mov    %rsp,%rbp
  400683:	76 1b                	jbe    4006a0 <deregister_tm_clones+0x30>
  400685:	b8 00 00 00 00       	mov    $0x0,%eax
  40068a:	48 85 c0             	test   %rax,%rax
  40068d:	74 11                	je     4006a0 <deregister_tm_clones+0x30>
  40068f:	5d                   	pop    %rbp
  400690:	bf 10 20 60 00       	mov    $0x602010,%edi
  400695:	ff e0                	jmpq   *%rax
  400697:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
  40069e:	00 00 
  4006a0:	5d                   	pop    %rbp
  4006a1:	c3                   	retq   
  4006a2:	0f 1f 40 00          	nopl   0x0(%rax)
  4006a6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  4006ad:	00 00 00 

00000000004006b0 <register_tm_clones>:
  4006b0:	be 10 20 60 00       	mov    $0x602010,%esi
  4006b5:	55                   	push   %rbp
  4006b6:	48 81 ee 10 20 60 00 	sub    $0x602010,%rsi
  4006bd:	48 c1 fe 03          	sar    $0x3,%rsi
  4006c1:	48 89 e5             	mov    %rsp,%rbp
  4006c4:	48 89 f0             	mov    %rsi,%rax
  4006c7:	48 c1 e8 3f          	shr    $0x3f,%rax
  4006cb:	48 01 c6             	add    %rax,%rsi
  4006ce:	48 d1 fe             	sar    %rsi
  4006d1:	74 15                	je     4006e8 <register_tm_clones+0x38>
  4006d3:	b8 00 00 00 00       	mov    $0x0,%eax
  4006d8:	48 85 c0             	test   %rax,%rax
  4006db:	74 0b                	je     4006e8 <register_tm_clones+0x38>
  4006dd:	5d                   	pop    %rbp
  4006de:	bf 10 20 60 00       	mov    $0x602010,%edi
  4006e3:	ff e0                	jmpq   *%rax
  4006e5:	0f 1f 00             	nopl   (%rax)
  4006e8:	5d                   	pop    %rbp
  4006e9:	c3                   	retq   
  4006ea:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

00000000004006f0 <__do_global_dtors_aux>:
  4006f0:	80 3d 21 19 20 00 00 	cmpb   $0x0,0x201921(%rip)        # 602018 <completed.7594>
  4006f7:	75 11                	jne    40070a <__do_global_dtors_aux+0x1a>
  4006f9:	55                   	push   %rbp
  4006fa:	48 89 e5             	mov    %rsp,%rbp
  4006fd:	e8 6e ff ff ff       	callq  400670 <deregister_tm_clones>
  400702:	5d                   	pop    %rbp
  400703:	c6 05 0e 19 20 00 01 	movb   $0x1,0x20190e(%rip)        # 602018 <completed.7594>
  40070a:	f3 c3                	repz retq 
  40070c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400710 <frame_dummy>:
  400710:	bf d0 1d 60 00       	mov    $0x601dd0,%edi
  400715:	48 83 3f 00          	cmpq   $0x0,(%rdi)
  400719:	75 05                	jne    400720 <frame_dummy+0x10>
  40071b:	eb 93                	jmp    4006b0 <register_tm_clones>
  40071d:	0f 1f 00             	nopl   (%rax)
  400720:	b8 00 00 00 00       	mov    $0x0,%eax
  400725:	48 85 c0             	test   %rax,%rax
  400728:	74 f1                	je     40071b <frame_dummy+0xb>
  40072a:	55                   	push   %rbp
  40072b:	48 89 e5             	mov    %rsp,%rbp
  40072e:	ff d0                	callq  *%rax
  400730:	5d                   	pop    %rbp
  400731:	e9 7a ff ff ff       	jmpq   4006b0 <register_tm_clones>

0000000000400736 <sh>:
  400736:	55                   	push   %rbp
  400737:	48 89 e5             	mov    %rsp,%rbp
  40073a:	bf 20 0e 40 00       	mov    $0x400e20,%edi
  40073f:	e8 b4 fe ff ff       	callq  4005f8 <system@plt>
  400744:	90                   	nop
  400745:	5d                   	pop    %rbp
  400746:	c3                   	retq   

0000000000400747 <welcome>:
  400747:	55                   	push   %rbp
  400748:	48 89 e5             	mov    %rsp,%rbp
  40074b:	bf 30 0e 40 00       	mov    $0x400e30,%edi
  400750:	e8 9b fe ff ff       	callq  4005f0 <puts@plt>
  400755:	bf 60 0e 40 00       	mov    $0x400e60,%edi
  40075a:	e8 91 fe ff ff       	callq  4005f0 <puts@plt>
  40075f:	bf 90 0e 40 00       	mov    $0x400e90,%edi
  400764:	e8 87 fe ff ff       	callq  4005f0 <puts@plt>
  400769:	bf c0 0e 40 00       	mov    $0x400ec0,%edi
  40076e:	e8 7d fe ff ff       	callq  4005f0 <puts@plt>
  400773:	bf 30 0e 40 00       	mov    $0x400e30,%edi
  400778:	e8 73 fe ff ff       	callq  4005f0 <puts@plt>
  40077d:	bf f0 0e 40 00       	mov    $0x400ef0,%edi
  400782:	e8 69 fe ff ff       	callq  4005f0 <puts@plt>
  400787:	bf 30 0e 40 00       	mov    $0x400e30,%edi
  40078c:	e8 5f fe ff ff       	callq  4005f0 <puts@plt>
  400791:	bf 20 0f 40 00       	mov    $0x400f20,%edi
  400796:	e8 55 fe ff ff       	callq  4005f0 <puts@plt>
  40079b:	bf 50 0f 40 00       	mov    $0x400f50,%edi
  4007a0:	e8 4b fe ff ff       	callq  4005f0 <puts@plt>
  4007a5:	bf 30 0e 40 00       	mov    $0x400e30,%edi
  4007aa:	e8 41 fe ff ff       	callq  4005f0 <puts@plt>
  4007af:	bf 80 0f 40 00       	mov    $0x400f80,%edi
  4007b4:	e8 37 fe ff ff       	callq  4005f0 <puts@plt>
  4007b9:	bf 30 0e 40 00       	mov    $0x400e30,%edi
  4007be:	e8 2d fe ff ff       	callq  4005f0 <puts@plt>
  4007c3:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  4007c8:	e8 23 fe ff ff       	callq  4005f0 <puts@plt>
  4007cd:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  4007d2:	e8 19 fe ff ff       	callq  4005f0 <puts@plt>
  4007d7:	90                   	nop
  4007d8:	5d                   	pop    %rbp
  4007d9:	c3                   	retq   

00000000004007da <getint>:
  4007da:	55                   	push   %rbp
  4007db:	48 89 e5             	mov    %rsp,%rbp
  4007de:	48 83 ec 10          	sub    $0x10,%rsp
  4007e2:	48 8b 05 27 18 20 00 	mov    0x201827(%rip),%rax        # 602010 <stdout@@GLIBC_2.2.5>
  4007e9:	48 89 c7             	mov    %rax,%rdi
  4007ec:	e8 3f fe ff ff       	callq  400630 <fflush@plt>
  4007f1:	e8 2a fe ff ff       	callq  400620 <getchar@plt>
  4007f6:	89 45 fc             	mov    %eax,-0x4(%rbp)
  4007f9:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%rbp)
  400800:	eb 08                	jmp    40080a <getint+0x30>
  400802:	e8 19 fe ff ff       	callq  400620 <getchar@plt>
  400807:	89 45 fc             	mov    %eax,-0x4(%rbp)
  40080a:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
  40080e:	0f 95 c2             	setne  %dl
  400811:	83 7d fc 2f          	cmpl   $0x2f,-0x4(%rbp)
  400815:	7e 06                	jle    40081d <getint+0x43>
  400817:	83 7d fc 39          	cmpl   $0x39,-0x4(%rbp)
  40081b:	7e 07                	jle    400824 <getint+0x4a>
  40081d:	b8 01 00 00 00       	mov    $0x1,%eax
  400822:	eb 05                	jmp    400829 <getint+0x4f>
  400824:	b8 00 00 00 00       	mov    $0x0,%eax
  400829:	83 e0 01             	and    $0x1,%eax
  40082c:	21 d0                	and    %edx,%eax
  40082e:	84 c0                	test   %al,%al
  400830:	75 d0                	jne    400802 <getint+0x28>
  400832:	eb 21                	jmp    400855 <getint+0x7b>
  400834:	8b 55 f8             	mov    -0x8(%rbp),%edx
  400837:	89 d0                	mov    %edx,%eax
  400839:	c1 e0 02             	shl    $0x2,%eax
  40083c:	01 d0                	add    %edx,%eax
  40083e:	01 c0                	add    %eax,%eax
  400840:	89 c2                	mov    %eax,%edx
  400842:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400845:	01 d0                	add    %edx,%eax
  400847:	83 e8 30             	sub    $0x30,%eax
  40084a:	89 45 f8             	mov    %eax,-0x8(%rbp)
  40084d:	e8 ce fd ff ff       	callq  400620 <getchar@plt>
  400852:	89 45 fc             	mov    %eax,-0x4(%rbp)
  400855:	83 7d fc 2f          	cmpl   $0x2f,-0x4(%rbp)
  400859:	7e 06                	jle    400861 <getint+0x87>
  40085b:	83 7d fc 39          	cmpl   $0x39,-0x4(%rbp)
  40085f:	7e d3                	jle    400834 <getint+0x5a>
  400861:	8b 45 f8             	mov    -0x8(%rbp),%eax
  400864:	c9                   	leaveq 
  400865:	c3                   	retq   

0000000000400866 <show_booklist>:
  400866:	55                   	push   %rbp
  400867:	48 89 e5             	mov    %rsp,%rbp
  40086a:	48 83 ec 20          	sub    $0x20,%rsp
  40086e:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400872:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400879:	eb 44                	jmp    4008bf <show_booklist+0x59>
  40087b:	8b 45 fc             	mov    -0x4(%rbp),%eax
  40087e:	48 63 d0             	movslq %eax,%rdx
  400881:	48 89 d0             	mov    %rdx,%rax
  400884:	48 c1 e0 02          	shl    $0x2,%rax
  400888:	48 01 d0             	add    %rdx,%rax
  40088b:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400892:	00 
  400893:	48 01 d0             	add    %rdx,%rax
  400896:	48 c1 e0 02          	shl    $0x2,%rax
  40089a:	48 89 c2             	mov    %rax,%rdx
  40089d:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4008a1:	48 01 c2             	add    %rax,%rdx
  4008a4:	8b 45 fc             	mov    -0x4(%rbp),%eax
  4008a7:	83 c0 01             	add    $0x1,%eax
  4008aa:	89 c6                	mov    %eax,%esi
  4008ac:	bf ae 0f 40 00       	mov    $0x400fae,%edi
  4008b1:	b8 00 00 00 00       	mov    $0x0,%eax
  4008b6:	e8 45 fd ff ff       	callq  400600 <printf@plt>
  4008bb:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  4008bf:	83 7d fc 09          	cmpl   $0x9,-0x4(%rbp)
  4008c3:	7e b6                	jle    40087b <show_booklist+0x15>
  4008c5:	90                   	nop
  4008c6:	c9                   	leaveq 
  4008c7:	c3                   	retq   

00000000004008c8 <borrow_book>:
  4008c8:	55                   	push   %rbp
  4008c9:	48 89 e5             	mov    %rsp,%rbp
  4008cc:	48 83 ec 20          	sub    $0x20,%rsp
  4008d0:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  4008d4:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  4008d7:	83 7d e4 00          	cmpl   $0x0,-0x1c(%rbp)
  4008db:	78 06                	js     4008e3 <borrow_book+0x1b>
  4008dd:	83 7d e4 0a          	cmpl   $0xa,-0x1c(%rbp)
  4008e1:	7e 1e                	jle    400901 <borrow_book+0x39>
  4008e3:	bf b5 0f 40 00       	mov    $0x400fb5,%edi
  4008e8:	e8 03 fd ff ff       	callq  4005f0 <puts@plt>
  4008ed:	bf d1 0f 40 00       	mov    $0x400fd1,%edi
  4008f2:	e8 f9 fc ff ff       	callq  4005f0 <puts@plt>
  4008f7:	bf 00 00 00 00       	mov    $0x0,%edi
  4008fc:	e8 37 fd ff ff       	callq  400638 <exit@plt>
  400901:	83 7d e4 00          	cmpl   $0x0,-0x1c(%rbp)
  400905:	74 5d                	je     400964 <borrow_book+0x9c>
  400907:	bf de 0f 40 00       	mov    $0x400fde,%edi
  40090c:	e8 df fc ff ff       	callq  4005f0 <puts@plt>
  400911:	bf e8 0f 40 00       	mov    $0x400fe8,%edi
  400916:	e8 d5 fc ff ff       	callq  4005f0 <puts@plt>
  40091b:	8b 45 e4             	mov    -0x1c(%rbp),%eax
  40091e:	48 63 d0             	movslq %eax,%rdx
  400921:	48 89 d0             	mov    %rdx,%rax
  400924:	48 c1 e0 02          	shl    $0x2,%rax
  400928:	48 01 d0             	add    %rdx,%rax
  40092b:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400932:	00 
  400933:	48 01 d0             	add    %rdx,%rax
  400936:	48 c1 e0 02          	shl    $0x2,%rax
  40093a:	48 8d 50 9c          	lea    -0x64(%rax),%rdx
  40093e:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400942:	48 01 d0             	add    %rdx,%rax
  400945:	48 89 c7             	mov    %rax,%rdi
  400948:	b8 00 00 00 00       	mov    $0x0,%eax
  40094d:	e8 ae fc ff ff       	callq  400600 <printf@plt>
  400952:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  400957:	e8 94 fc ff ff       	callq  4005f0 <puts@plt>
  40095c:	8b 45 e4             	mov    -0x1c(%rbp),%eax
  40095f:	e9 ad 00 00 00       	jmpq   400a11 <borrow_book+0x149>
  400964:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400968:	48 89 c7             	mov    %rax,%rdi
  40096b:	e8 f6 fe ff ff       	callq  400866 <show_booklist>
  400970:	bf 10 10 40 00       	mov    $0x401010,%edi
  400975:	e8 76 fc ff ff       	callq  4005f0 <puts@plt>
  40097a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400981:	b8 00 00 00 00       	mov    $0x0,%eax
  400986:	e8 4f fe ff ff       	callq  4007da <getint>
  40098b:	89 45 fc             	mov    %eax,-0x4(%rbp)
  40098e:	eb 17                	jmp    4009a7 <borrow_book+0xdf>
  400990:	bf 40 10 40 00       	mov    $0x401040,%edi
  400995:	e8 56 fc ff ff       	callq  4005f0 <puts@plt>
  40099a:	b8 00 00 00 00       	mov    $0x0,%eax
  40099f:	e8 36 fe ff ff       	callq  4007da <getint>
  4009a4:	89 45 fc             	mov    %eax,-0x4(%rbp)
  4009a7:	83 7d fc 00          	cmpl   $0x0,-0x4(%rbp)
  4009ab:	7e e3                	jle    400990 <borrow_book+0xc8>
  4009ad:	83 7d fc 0a          	cmpl   $0xa,-0x4(%rbp)
  4009b1:	7f dd                	jg     400990 <borrow_book+0xc8>
  4009b3:	8b 45 fc             	mov    -0x4(%rbp),%eax
  4009b6:	89 45 e4             	mov    %eax,-0x1c(%rbp)
  4009b9:	bf 5f 10 40 00       	mov    $0x40105f,%edi
  4009be:	e8 2d fc ff ff       	callq  4005f0 <puts@plt>
  4009c3:	bf 70 10 40 00       	mov    $0x401070,%edi
  4009c8:	e8 23 fc ff ff       	callq  4005f0 <puts@plt>
  4009cd:	8b 45 e4             	mov    -0x1c(%rbp),%eax
  4009d0:	48 63 d0             	movslq %eax,%rdx
  4009d3:	48 89 d0             	mov    %rdx,%rax
  4009d6:	48 c1 e0 02          	shl    $0x2,%rax
  4009da:	48 01 d0             	add    %rdx,%rax
  4009dd:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  4009e4:	00 
  4009e5:	48 01 d0             	add    %rdx,%rax
  4009e8:	48 c1 e0 02          	shl    $0x2,%rax
  4009ec:	48 8d 50 9c          	lea    -0x64(%rax),%rdx
  4009f0:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4009f4:	48 01 d0             	add    %rdx,%rax
  4009f7:	48 89 c7             	mov    %rax,%rdi
  4009fa:	b8 00 00 00 00       	mov    $0x0,%eax
  4009ff:	e8 fc fb ff ff       	callq  400600 <printf@plt>
  400a04:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  400a09:	e8 e2 fb ff ff       	callq  4005f0 <puts@plt>
  400a0e:	8b 45 e4             	mov    -0x1c(%rbp),%eax
  400a11:	c9                   	leaveq 
  400a12:	c3                   	retq   

0000000000400a13 <return_book>:
  400a13:	55                   	push   %rbp
  400a14:	48 89 e5             	mov    %rsp,%rbp
  400a17:	48 83 ec 10          	sub    $0x10,%rsp
  400a1b:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
  400a1f:	89 75 f4             	mov    %esi,-0xc(%rbp)
  400a22:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  400a26:	78 06                	js     400a2e <return_book+0x1b>
  400a28:	83 7d f4 0a          	cmpl   $0xa,-0xc(%rbp)
  400a2c:	7e 1e                	jle    400a4c <return_book+0x39>
  400a2e:	bf b5 0f 40 00       	mov    $0x400fb5,%edi
  400a33:	e8 b8 fb ff ff       	callq  4005f0 <puts@plt>
  400a38:	bf 98 10 40 00       	mov    $0x401098,%edi
  400a3d:	e8 ae fb ff ff       	callq  4005f0 <puts@plt>
  400a42:	bf 00 00 00 00       	mov    $0x0,%edi
  400a47:	e8 ec fb ff ff       	callq  400638 <exit@plt>
  400a4c:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  400a50:	74 61                	je     400ab3 <return_book+0xa0>
  400a52:	bf a5 10 40 00       	mov    $0x4010a5,%edi
  400a57:	e8 94 fb ff ff       	callq  4005f0 <puts@plt>
  400a5c:	bf b0 10 40 00       	mov    $0x4010b0,%edi
  400a61:	e8 8a fb ff ff       	callq  4005f0 <puts@plt>
  400a66:	8b 45 f4             	mov    -0xc(%rbp),%eax
  400a69:	48 63 d0             	movslq %eax,%rdx
  400a6c:	48 89 d0             	mov    %rdx,%rax
  400a6f:	48 c1 e0 02          	shl    $0x2,%rax
  400a73:	48 01 d0             	add    %rdx,%rax
  400a76:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400a7d:	00 
  400a7e:	48 01 d0             	add    %rdx,%rax
  400a81:	48 c1 e0 02          	shl    $0x2,%rax
  400a85:	48 8d 50 9c          	lea    -0x64(%rax),%rdx
  400a89:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400a8d:	48 01 d0             	add    %rdx,%rax
  400a90:	48 89 c7             	mov    %rax,%rdi
  400a93:	b8 00 00 00 00       	mov    $0x0,%eax
  400a98:	e8 63 fb ff ff       	callq  400600 <printf@plt>
  400a9d:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  400aa2:	e8 49 fb ff ff       	callq  4005f0 <puts@plt>
  400aa7:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
  400aae:	8b 45 f4             	mov    -0xc(%rbp),%eax
  400ab1:	eb 0d                	jmp    400ac0 <return_book+0xad>
  400ab3:	bf d8 10 40 00       	mov    $0x4010d8,%edi
  400ab8:	e8 33 fb ff ff       	callq  4005f0 <puts@plt>
  400abd:	8b 45 f4             	mov    -0xc(%rbp),%eax
  400ac0:	c9                   	leaveq 
  400ac1:	c3                   	retq   

0000000000400ac2 <edit_profile>:
  400ac2:	55                   	push   %rbp
  400ac3:	48 89 e5             	mov    %rsp,%rbp
  400ac6:	48 83 ec 20          	sub    $0x20,%rsp
  400aca:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400ace:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400ad2:	ba 1e 00 00 00       	mov    $0x1e,%edx
  400ad7:	be 00 00 00 00       	mov    $0x0,%esi
  400adc:	48 89 c7             	mov    %rax,%rdi
  400adf:	e8 24 fb ff ff       	callq  400608 <memset@plt>
  400ae4:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400ae8:	48 83 c0 1e          	add    $0x1e,%rax
  400aec:	ba 1e 00 00 00       	mov    $0x1e,%edx
  400af1:	be 00 00 00 00       	mov    $0x0,%esi
  400af6:	48 89 c7             	mov    %rax,%rdi
  400af9:	e8 0a fb ff ff       	callq  400608 <memset@plt>
  400afe:	bf f3 10 40 00       	mov    $0x4010f3,%edi
  400b03:	e8 e8 fa ff ff       	callq  4005f0 <puts@plt>
  400b08:	48 8b 05 01 15 20 00 	mov    0x201501(%rip),%rax        # 602010 <stdout@@GLIBC_2.2.5>
  400b0f:	48 89 c7             	mov    %rax,%rdi
  400b12:	e8 19 fb ff ff       	callq  400630 <fflush@plt>
  400b17:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b1b:	ba 14 00 00 00       	mov    $0x14,%edx
  400b20:	48 89 c6             	mov    %rax,%rsi
  400b23:	bf 00 00 00 00       	mov    $0x0,%edi
  400b28:	b8 00 00 00 00       	mov    $0x0,%eax
  400b2d:	e8 de fa ff ff       	callq  400610 <read@plt>
  400b32:	89 45 fc             	mov    %eax,-0x4(%rbp)
  400b35:	83 7d fc 14          	cmpl   $0x14,-0x4(%rbp)
  400b39:	7e 1e                	jle    400b59 <edit_profile+0x97>
  400b3b:	bf 11 11 40 00       	mov    $0x401111,%edi
  400b40:	e8 ab fa ff ff       	callq  4005f0 <puts@plt>
  400b45:	bf d1 0f 40 00       	mov    $0x400fd1,%edi
  400b4a:	e8 a1 fa ff ff       	callq  4005f0 <puts@plt>
  400b4f:	bf 00 00 00 00       	mov    $0x0,%edi
  400b54:	e8 df fa ff ff       	callq  400638 <exit@plt>
  400b59:	bf 28 11 40 00       	mov    $0x401128,%edi
  400b5e:	e8 8d fa ff ff       	callq  4005f0 <puts@plt>
  400b63:	48 8b 05 a6 14 20 00 	mov    0x2014a6(%rip),%rax        # 602010 <stdout@@GLIBC_2.2.5>
  400b6a:	48 89 c7             	mov    %rax,%rdi
  400b6d:	e8 be fa ff ff       	callq  400630 <fflush@plt>
  400b72:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b76:	48 83 c0 1e          	add    $0x1e,%rax
  400b7a:	ba 14 00 00 00       	mov    $0x14,%edx
  400b7f:	48 89 c6             	mov    %rax,%rsi
  400b82:	bf 00 00 00 00       	mov    $0x0,%edi
  400b87:	b8 00 00 00 00       	mov    $0x0,%eax
  400b8c:	e8 7f fa ff ff       	callq  400610 <read@plt>
  400b91:	89 45 fc             	mov    %eax,-0x4(%rbp)
  400b94:	83 7d fc 14          	cmpl   $0x14,-0x4(%rbp)
  400b98:	7e 1e                	jle    400bb8 <edit_profile+0xf6>
  400b9a:	bf 11 11 40 00       	mov    $0x401111,%edi
  400b9f:	e8 4c fa ff ff       	callq  4005f0 <puts@plt>
  400ba4:	bf d1 0f 40 00       	mov    $0x400fd1,%edi
  400ba9:	e8 42 fa ff ff       	callq  4005f0 <puts@plt>
  400bae:	bf 00 00 00 00       	mov    $0x0,%edi
  400bb3:	e8 80 fa ff ff       	callq  400638 <exit@plt>
  400bb8:	90                   	nop
  400bb9:	c9                   	leaveq 
  400bba:	c3                   	retq   

0000000000400bbb <show_profile>:
  400bbb:	55                   	push   %rbp
  400bbc:	48 89 e5             	mov    %rsp,%rbp
  400bbf:	48 83 ec 10          	sub    $0x10,%rsp
  400bc3:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
  400bc7:	bf 46 11 40 00       	mov    $0x401146,%edi
  400bcc:	e8 1f fa ff ff       	callq  4005f0 <puts@plt>
  400bd1:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400bd5:	48 89 c7             	mov    %rax,%rdi
  400bd8:	b8 00 00 00 00       	mov    $0x0,%eax
  400bdd:	e8 1e fa ff ff       	callq  400600 <printf@plt>
  400be2:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  400be7:	e8 04 fa ff ff       	callq  4005f0 <puts@plt>
  400bec:	bf 55 11 40 00       	mov    $0x401155,%edi
  400bf1:	e8 fa f9 ff ff       	callq  4005f0 <puts@plt>
  400bf6:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400bfa:	48 83 c0 1e          	add    $0x1e,%rax
  400bfe:	48 89 c7             	mov    %rax,%rdi
  400c01:	b8 00 00 00 00       	mov    $0x0,%eax
  400c06:	e8 f5 f9 ff ff       	callq  400600 <printf@plt>
  400c0b:	bf ad 0f 40 00       	mov    $0x400fad,%edi
  400c10:	e8 db f9 ff ff       	callq  4005f0 <puts@plt>
  400c15:	90                   	nop
  400c16:	c9                   	leaveq 
  400c17:	c3                   	retq   

0000000000400c18 <menu>:
  400c18:	55                   	push   %rbp
  400c19:	48 89 e5             	mov    %rsp,%rbp
  400c1c:	48 81 ec 40 04 00 00 	sub    $0x440,%rsp
  400c23:	48 8d 85 c0 fb ff ff 	lea    -0x440(%rbp),%rax
  400c2a:	be 80 12 40 00       	mov    $0x401280,%esi
  400c2f:	ba 7d 00 00 00       	mov    $0x7d,%edx
  400c34:	48 89 c7             	mov    %rax,%rdi
  400c37:	48 89 d1             	mov    %rdx,%rcx
  400c3a:	f3 48 a5             	rep movsq %ds:(%rsi),%es:(%rdi)
  400c3d:	bf 64 11 40 00       	mov    $0x401164,%edi
  400c42:	e8 a9 f9 ff ff       	callq  4005f0 <puts@plt>
  400c47:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400c4b:	48 89 c7             	mov    %rax,%rdi
  400c4e:	e8 6f fe ff ff       	callq  400ac2 <edit_profile>
  400c53:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400c5a:	bf 80 11 40 00       	mov    $0x401180,%edi
  400c5f:	e8 8c f9 ff ff       	callq  4005f0 <puts@plt>
  400c64:	bf d1 11 40 00       	mov    $0x4011d1,%edi
  400c69:	e8 82 f9 ff ff       	callq  4005f0 <puts@plt>
  400c6e:	bf e1 11 40 00       	mov    $0x4011e1,%edi
  400c73:	e8 78 f9 ff ff       	callq  4005f0 <puts@plt>
  400c78:	bf f1 11 40 00       	mov    $0x4011f1,%edi
  400c7d:	e8 6e f9 ff ff       	callq  4005f0 <puts@plt>
  400c82:	bf 01 12 40 00       	mov    $0x401201,%edi
  400c87:	e8 64 f9 ff ff       	callq  4005f0 <puts@plt>
  400c8c:	bf 10 12 40 00       	mov    $0x401210,%edi
  400c91:	e8 5a f9 ff ff       	callq  4005f0 <puts@plt>
  400c96:	bf 1f 12 40 00       	mov    $0x40121f,%edi
  400c9b:	e8 50 f9 ff ff       	callq  4005f0 <puts@plt>
  400ca0:	bf 2d 12 40 00       	mov    $0x40122d,%edi
  400ca5:	b8 00 00 00 00       	mov    $0x0,%eax
  400caa:	e8 51 f9 ff ff       	callq  400600 <printf@plt>
  400caf:	b8 00 00 00 00       	mov    $0x0,%eax
  400cb4:	e8 21 fb ff ff       	callq  4007da <getint>
  400cb9:	89 45 f8             	mov    %eax,-0x8(%rbp)
  400cbc:	bf 80 11 40 00       	mov    $0x401180,%edi
  400cc1:	e8 2a f9 ff ff       	callq  4005f0 <puts@plt>
  400cc6:	83 7d f8 06          	cmpl   $0x6,-0x8(%rbp)
  400cca:	77 78                	ja     400d44 <menu+0x12c>
  400ccc:	8b 45 f8             	mov    -0x8(%rbp),%eax
  400ccf:	48 8b 04 c5 68 16 40 	mov    0x401668(,%rax,8),%rax
  400cd6:	00 
  400cd7:	ff e0                	jmpq   *%rax
  400cd9:	48 8d 85 c0 fb ff ff 	lea    -0x440(%rbp),%rax
  400ce0:	48 89 c7             	mov    %rax,%rdi
  400ce3:	e8 7e fb ff ff       	callq  400866 <show_booklist>
  400ce8:	eb 64                	jmp    400d4e <menu+0x136>
  400cea:	8b 55 fc             	mov    -0x4(%rbp),%edx
  400ced:	48 8d 85 c0 fb ff ff 	lea    -0x440(%rbp),%rax
  400cf4:	89 d6                	mov    %edx,%esi
  400cf6:	48 89 c7             	mov    %rax,%rdi
  400cf9:	e8 ca fb ff ff       	callq  4008c8 <borrow_book>
  400cfe:	89 45 fc             	mov    %eax,-0x4(%rbp)
  400d01:	eb 4b                	jmp    400d4e <menu+0x136>
  400d03:	8b 55 fc             	mov    -0x4(%rbp),%edx
  400d06:	48 8d 85 c0 fb ff ff 	lea    -0x440(%rbp),%rax
  400d0d:	89 d6                	mov    %edx,%esi
  400d0f:	48 89 c7             	mov    %rax,%rdi
  400d12:	e8 fc fc ff ff       	callq  400a13 <return_book>
  400d17:	89 45 fc             	mov    %eax,-0x4(%rbp)
  400d1a:	eb 32                	jmp    400d4e <menu+0x136>
  400d1c:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400d20:	48 89 c7             	mov    %rax,%rdi
  400d23:	e8 9a fd ff ff       	callq  400ac2 <edit_profile>
  400d28:	eb 24                	jmp    400d4e <menu+0x136>
  400d2a:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400d2e:	48 89 c7             	mov    %rax,%rdi
  400d31:	e8 85 fe ff ff       	callq  400bbb <show_profile>
  400d36:	eb 16                	jmp    400d4e <menu+0x136>
  400d38:	bf 31 12 40 00       	mov    $0x401231,%edi
  400d3d:	e8 ae f8 ff ff       	callq  4005f0 <puts@plt>
  400d42:	eb 0f                	jmp    400d53 <menu+0x13b>
  400d44:	bf 4e 12 40 00       	mov    $0x40124e,%edi
  400d49:	e8 a2 f8 ff ff       	callq  4005f0 <puts@plt>
  400d4e:	e9 07 ff ff ff       	jmpq   400c5a <menu+0x42>
  400d53:	c9                   	leaveq 
  400d54:	c3                   	retq   

0000000000400d55 <main>:
  400d55:	55                   	push   %rbp
  400d56:	48 89 e5             	mov    %rsp,%rbp
  400d59:	b8 00 00 00 00       	mov    $0x0,%eax
  400d5e:	e8 e4 f9 ff ff       	callq  400747 <welcome>
  400d63:	b8 00 00 00 00       	mov    $0x0,%eax
  400d68:	e8 ab fe ff ff       	callq  400c18 <menu>
  400d6d:	b8 00 00 00 00       	mov    $0x0,%eax
  400d72:	5d                   	pop    %rbp
  400d73:	c3                   	retq   
  400d74:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  400d7b:	00 00 00 
  400d7e:	66 90                	xchg   %ax,%ax

0000000000400d80 <__libc_csu_init>:
  400d80:	41 57                	push   %r15
  400d82:	41 56                	push   %r14
  400d84:	41 89 ff             	mov    %edi,%r15d
  400d87:	41 55                	push   %r13
  400d89:	41 54                	push   %r12
  400d8b:	4c 8d 25 2e 10 20 00 	lea    0x20102e(%rip),%r12        # 601dc0 <__frame_dummy_init_array_entry>
  400d92:	55                   	push   %rbp
  400d93:	48 8d 2d 2e 10 20 00 	lea    0x20102e(%rip),%rbp        # 601dc8 <__init_array_end>
  400d9a:	53                   	push   %rbx
  400d9b:	49 89 f6             	mov    %rsi,%r14
  400d9e:	49 89 d5             	mov    %rdx,%r13
  400da1:	4c 29 e5             	sub    %r12,%rbp
  400da4:	48 83 ec 08          	sub    $0x8,%rsp
  400da8:	48 c1 fd 03          	sar    $0x3,%rbp
  400dac:	e8 0f f8 ff ff       	callq  4005c0 <_init>
  400db1:	48 85 ed             	test   %rbp,%rbp
  400db4:	74 20                	je     400dd6 <__libc_csu_init+0x56>
  400db6:	31 db                	xor    %ebx,%ebx
  400db8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  400dbf:	00 
  400dc0:	4c 89 ea             	mov    %r13,%rdx
  400dc3:	4c 89 f6             	mov    %r14,%rsi
  400dc6:	44 89 ff             	mov    %r15d,%edi
  400dc9:	41 ff 14 dc          	callq  *(%r12,%rbx,8)
  400dcd:	48 83 c3 01          	add    $0x1,%rbx
  400dd1:	48 39 eb             	cmp    %rbp,%rbx
  400dd4:	75 ea                	jne    400dc0 <__libc_csu_init+0x40>
  400dd6:	48 83 c4 08          	add    $0x8,%rsp
  400dda:	5b                   	pop    %rbx
  400ddb:	5d                   	pop    %rbp
  400ddc:	41 5c                	pop    %r12
  400dde:	41 5d                	pop    %r13
  400de0:	41 5e                	pop    %r14
  400de2:	41 5f                	pop    %r15
  400de4:	c3                   	retq   
  400de5:	90                   	nop
  400de6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  400ded:	00 00 00 

0000000000400df0 <__libc_csu_fini>:
  400df0:	f3 c3                	repz retq 

Disassembly of section .fini:

0000000000400df4 <_fini>:
  400df4:	48 83 ec 08          	sub    $0x8,%rsp
  400df8:	48 83 c4 08          	add    $0x8,%rsp
  400dfc:	c3                   	retq   
